This application relates to techniques for automatically testing circuits, and more particularly, to techniques for testing programmable networks of control signals.
Field programmable gate arrays (FPGAs) are programmable integrated circuits that include logic elements, memory, and programmable interconnect conductors. The logic elements, memory, and the interconnect conductors can be programmed to implement a number of different user designs. The logic elements typically include combinatorial and sequential logic circuits.
After an FPGA is manufactured, the logic elements, memory, and programmable connections in the interconnect structure are tested to ensure that they are operating properly. Tests are performed to detect the presence of any manufacturing detects in the FPGA.
Programmable interconnects that route control signals are tested functionally, by observing their effect on functional registers. For example, all programmable interconnections that can connect a clock signal to a clock input of a functional register are tested one at a time. Functional registers are registers that can be programmed and operated during user mode. The tests are performed to determine if the clock signal clocked the function register as expected. If the functional register was not clocked correctly, the programmable interconnections or the clock path may contain defects that prevent proper operation of the functional register.
It is expensive to test all of the programmable interconnections that constitute the programmable network for the controls signals in this way, because a large number of configurations is needed to test all of the interconnections. Because the tests are functional and the same registers are used for observation, a clock connection cannot be tested at the same time as a clear connection on the same register.
Therefore, it would be desirable to provide more efficient and cost effective techniques for testing networks of programmable resources that route control signals through a programmable integrated circuit.